#include "../rg_gui.h"

// This comes with no warranty, implied or otherwise

// This data structure was designed to support Proportional fonts
// on Arduinos. It can however handle any ttf font that has been converted
// using the conversion program. These could be fixed width or proportional
// fonts. Individual characters do not have to be multiples of 8 bits wide.
// Any width is fine and does not need to be fixed.

// The data bits are packed to minimize data requirements, but the tradeoff
// is that a header is required per character.

// Font         : DejaVu Sans
// Point Size   : 15
// Memory usage : 1425 bytes
// # characters : 95

const rg_font_t font_DejaVu15 = {
    .name = "DejaVu",
    .type = 1,
    .width = 14,
    .height = 15,
    .chars = 95,
    .data = {
        // Individual Character Format:
        // ----------------------------
        // Character Code
        // Adjusted Y Offset
        // Width
        // Height
        // xOffset
        // xDelta (the distance to move the cursor. Effective width of the character.)
        // Data[n]

        // NOTE: You can remove any of these characters if they are not needed in
        // your application. The first character number in each Glyph indicates
        // the ASCII character code. Therefore, these do not have to be sequential.
        // Just remove all the content for a particular character to save space.

// ' '
0x20,0x0C,0x00,0x00,0x00,0x05,

// '!'
0x21,0x01,0x01,0x0B,0x02,0x06,
0xFE,0x60,
// '"'
0x22,0x01,0x04,0x04,0x01,0x06,
0x99,0x99,
// '#'
0x23,0x01,0x0A,0x0B,0x01,0x0D,
0x09,0x02,0x40,0x91,0xFF,0x12,0x04,0x81,0x23,0xFE,0x26,0x09,0x02,0x40,
// '$'
0x24,0x00,0x07,0x0E,0x02,0x0A,
0x10,0x21,0xF6,0x99,0x12,0x1C,0x0E,0x12,0x26,0x5B,0xE1,0x02,0x00,
// '%'
0x25,0x01,0x0D,0x0B,0x01,0x0E,
0x70,0x46,0xC2,0x22,0x21,0x12,0x0D,0x90,0x39,0x38,0x13,0x60,0x91,0x08,0x88,0x86,0xC4,0x1C,
// '&'
0x26,0x01,0x0A,0x0B,0x01,0x0B,
0x38,0x11,0x04,0x01,0x00,0x60,0x14,0x28,0x8A,0x12,0x83,0x10,0xC3,0xC8,
// '''
0x27,0x01,0x01,0x04,0x01,0x03,
0xF0,
// '('
0x28,0x01,0x03,0x0D,0x02,0x06,
0x29,0x49,0x24,0x91,0x22,
// ')'
0x29,0x01,0x03,0x0D,0x01,0x06,
0x89,0x12,0x49,0x25,0x28,
// '*'
0x2A,0x01,0x07,0x06,0x00,0x08,
0x11,0x24,0xE1,0xC9,0x22,0x00,
// '+'
0x2B,0x03,0x09,0x09,0x02,0x0D,
0x08,0x04,0x02,0x01,0x0F,0xF8,0x40,0x20,0x10,0x08,0x00,
// ','
0x2C,0x0A,0x02,0x04,0x01,0x05,
0x56,
// '-'
0x2D,0x07,0x04,0x01,0x01,0x05,
0xF0,
// '.'
0x2E,0x0A,0x01,0x02,0x02,0x05,
0xC0,
// '/'
0x2F,0x01,0x05,0x0C,0x00,0x05,
0x08,0xC4,0x23,0x10,0x8C,0x42,0x31,0x00,
// '0'
0x30,0x01,0x08,0x0B,0x01,0x0A,
0x3C,0x42,0xC3,0x81,0x81,0x81,0x81,0x81,0xC3,0x42,0x3C,
// '1'
0x31,0x01,0x06,0x0B,0x02,0x0A,
0x73,0x41,0x04,0x10,0x41,0x04,0x10,0x47,0xC0,
// '2'
0x32,0x01,0x08,0x0B,0x01,0x0A,
0x78,0xC4,0x82,0x02,0x06,0x04,0x08,0x10,0x20,0x40,0xFE,
// '3'
0x33,0x01,0x07,0x0B,0x01,0x0A,
0x79,0x0C,0x08,0x10,0x67,0x81,0x81,0x03,0x0D,0xE0,
// '4'
0x34,0x01,0x08,0x0B,0x01,0x0A,
0x0C,0x14,0x14,0x24,0x44,0x44,0x84,0xFF,0x04,0x04,0x04,
// '5'
0x35,0x01,0x07,0x0B,0x02,0x0A,
0xFD,0x02,0x04,0x0F,0x90,0x80,0x81,0x03,0x09,0xE0,
// '6'
0x36,0x01,0x08,0x0B,0x01,0x0A,
0x1E,0x61,0x40,0x80,0xBC,0xC2,0x81,0x81,0x81,0x42,0x3C,
// '7'
0x37,0x01,0x07,0x0B,0x01,0x0A,
0xFE,0x04,0x10,0x20,0x81,0x02,0x08,0x10,0x20,0x80,
// '8'
0x38,0x01,0x08,0x0B,0x01,0x0A,
0x3C,0xC3,0x81,0x81,0x42,0x7E,0xC3,0x81,0x81,0xC3,0x3C,
// '9'
0x39,0x01,0x08,0x0B,0x01,0x0A,
0x3C,0x42,0x81,0x81,0x81,0x43,0x3D,0x01,0x02,0x86,0x78,
// ':'
0x3A,0x04,0x01,0x08,0x02,0x05,
0xC3,
// ';'
0x3B,0x04,0x02,0x0A,0x01,0x05,
0x50,0x05,0x60,
// '<'
0x3C,0x03,0x09,0x08,0x02,0x0D,
0x00,0x83,0x8E,0x1C,0x0E,0x01,0xC0,0x1C,0x01,
// '='
0x3D,0x05,0x09,0x04,0x02,0x0D,
0xFF,0x80,0x00,0x1F,0xF0,
// '>'
0x3E,0x03,0x09,0x08,0x02,0x0D,
0x80,0x38,0x03,0x80,0x70,0x38,0x71,0xC1,0x00,
// '?'
0x3F,0x01,0x06,0x0B,0x01,0x08,
0x7A,0x30,0x43,0x18,0xC2,0x08,0x00,0x82,0x00,
// '@'
0x40,0x01,0x0D,0x0D,0x01,0x0F,
0x0F,0x81,0x83,0x18,0x04,0x8E,0xA8,0x8C,0xC8,0x26,0x41,0x32,0x09,0x88,0xD2,0x3B,0x18,0x00,0x60,0xC0,0xFC,0x00,
// 'A'
0x41,0x01,0x0A,0x0B,0x00,0x0A,
0x0C,0x03,0x01,0x20,0x48,0x21,0x08,0x42,0x11,0xFE,0x40,0x90,0x28,0x04,
// 'B'
0x42,0x01,0x08,0x0B,0x01,0x0A,
0xFC,0x83,0x81,0x81,0x83,0xFE,0x83,0x81,0x81,0x83,0xFE,
// 'C'
0x43,0x01,0x09,0x0B,0x01,0x0A,
0x1F,0x30,0xD0,0x10,0x08,0x04,0x02,0x01,0x00,0x40,0x30,0xC7,0xC0,
// 'D'
0x44,0x01,0x09,0x0B,0x01,0x0B,
0xFC,0x41,0xA0,0x50,0x18,0x0C,0x06,0x03,0x01,0x81,0x41,0xBF,0x00,
// 'E'
0x45,0x01,0x07,0x0B,0x01,0x09,
0xFF,0x02,0x04,0x08,0x1F,0xE0,0x40,0x81,0x03,0xF8,
// 'F'
0x46,0x01,0x06,0x0B,0x01,0x09,
0xFE,0x08,0x20,0x83,0xF8,0x20,0x82,0x08,0x00,
// 'G'
0x47,0x01,0x0A,0x0B,0x01,0x0C,
0x1F,0x88,0x34,0x06,0x00,0x80,0x20,0x78,0x06,0x01,0x40,0x48,0x11,0xF8,
// 'H'
0x48,0x01,0x09,0x0B,0x01,0x0B,
0x80,0xC0,0x60,0x30,0x18,0x0F,0xFE,0x03,0x01,0x80,0xC0,0x60,0x20,
// 'I'
0x49,0x01,0x01,0x0B,0x01,0x03,
0xFF,0xE0,
// 'J'
0x4A,0x01,0x03,0x0E,0xFF,0x03,
0x24,0x92,0x49,0x24,0x97,0x80,
// 'K'
0x4B,0x01,0x09,0x0B,0x01,0x0A,
0x82,0x42,0x22,0x12,0x0A,0x05,0x02,0x41,0x10,0x84,0x41,0x20,0x40,
// 'L'
0x4C,0x01,0x07,0x0B,0x01,0x08,
0x81,0x02,0x04,0x08,0x10,0x20,0x40,0x81,0x03,0xF8,
// 'M'
0x4D,0x01,0x0B,0x0B,0x01,0x0D,
0xC0,0x78,0x0E,0x82,0xD0,0x59,0x13,0x22,0x62,0x8C,0x51,0x84,0x30,0x06,0x00,0x80,
// 'N'
0x4E,0x01,0x09,0x0B,0x01,0x0B,
0xC0,0xE0,0x68,0x32,0x19,0x0C,0x46,0x13,0x09,0x82,0xC0,0xE0,0x60,
// 'O'
0x4F,0x01,0x0A,0x0B,0x01,0x0C,
0x1E,0x18,0x64,0x0A,0x01,0x80,0x60,0x18,0x06,0x01,0x40,0x98,0x61,0xE0,
// 'P'
0x50,0x01,0x07,0x0B,0x01,0x09,
0xF9,0x0A,0x0C,0x18,0x30,0xBE,0x40,0x81,0x02,0x00,
// 'Q'
0x51,0x01,0x0A,0x0D,0x01,0x0C,
0x1E,0x18,0x64,0x0A,0x01,0x80,0x60,0x18,0x06,0x01,0x40,0x98,0x61,0xF0,0x04,0x00,0x80,
// 'R'
0x52,0x01,0x08,0x0B,0x01,0x0A,
0xFC,0x86,0x82,0x82,0x86,0xFC,0x84,0x82,0x82,0x81,0x81,
// 'S'
0x53,0x01,0x08,0x0B,0x01,0x0A,
0x3E,0xC1,0x80,0x80,0x70,0x1E,0x03,0x01,0x81,0xC2,0x7C,
// 'T'
0x54,0x01,0x09,0x0B,0x00,0x09,
0xFF,0x84,0x02,0x01,0x00,0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x00,
// 'U'
0x55,0x01,0x09,0x0B,0x01,0x0B,
0x80,0xC0,0x60,0x30,0x18,0x0C,0x06,0x03,0x01,0x80,0xA0,0x8F,0x80,
// 'V'
0x56,0x01,0x0B,0x0B,0x00,0x0A,
0x80,0x40,0x09,0x02,0x20,0x42,0x10,0x42,0x08,0x40,0x90,0x12,0x01,0x80,0x30,0x00,
// 'W'
0x57,0x01,0x0D,0x0B,0x01,0x0F,
0x82,0x0C,0x10,0x50,0x84,0x8A,0x24,0x51,0x22,0x88,0xA2,0x85,0x14,0x28,0xA1,0xC7,0x04,0x10,
// 'X'
0x58,0x01,0x09,0x0B,0x00,0x09,
0x61,0x90,0x84,0x82,0xC0,0xC0,0x60,0x50,0x64,0x22,0x20,0xB0,0x20,
// 'Y'
0x59,0x01,0x09,0x0B,0x00,0x09,
0x80,0xA0,0x88,0x84,0x41,0x40,0x40,0x20,0x10,0x08,0x04,0x02,0x00,
// 'Z'
0x5A,0x01,0x09,0x0B,0x01,0x0B,
0xFF,0x80,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x3F,0xE0,
// '['
0x5B,0x01,0x03,0x0D,0x01,0x06,
0xF2,0x49,0x24,0x92,0x4E,
// '\'
0x5C,0x01,0x05,0x0C,0x00,0x05,
0x86,0x10,0x86,0x10,0x86,0x10,0x86,0x10,
// ']'
0x5D,0x01,0x03,0x0D,0x02,0x06,
0xE4,0x92,0x49,0x24,0x9E,
// '^'
0x5E,0x01,0x09,0x04,0x02,0x0D,
0x1C,0x1B,0x18,0xD8,0x30,
// '_'
0x5F,0x0F,0x08,0x01,0x00,0x08,
0xFF,
// '`'
0x60,0x00,0x04,0x03,0x01,0x08,
0xC6,0x30,
// 'a'
0x61,0x04,0x07,0x08,0x01,0x09,
0x3C,0x8C,0x0B,0xFC,0x30,0x71,0xBD,
// 'b'
0x62,0x01,0x07,0x0B,0x01,0x09,
0x81,0x02,0x05,0xCC,0x50,0x60,0xC1,0x83,0x8A,0xE0,
// 'c'
0x63,0x04,0x06,0x08,0x01,0x08,
0x39,0x18,0x20,0x82,0x04,0x4E,
// 'd'
0x64,0x01,0x07,0x0B,0x01,0x09,
0x02,0x04,0x09,0xD4,0x70,0x60,0xC1,0x82,0x8C,0xE8,
// 'e'
0x65,0x04,0x07,0x08,0x01,0x09,
0x38,0x8A,0x0F,0xF8,0x10,0x10,0x9E,
// 'f'
0x66,0x01,0x05,0x0B,0x01,0x05,
0x3A,0x11,0xE4,0x21,0x08,0x42,0x10,
// 'g'
0x67,0x04,0x07,0x0B,0x01,0x09,
0x3A,0x8E,0x0C,0x18,0x30,0x51,0x9D,0x02,0x88,0xE0,
// 'h'
0x68,0x01,0x07,0x0B,0x01,0x09,
0x81,0x02,0x05,0xEC,0x70,0x60,0xC1,0x83,0x06,0x08,
// 'i'
0x69,0x01,0x01,0x0B,0x01,0x03,
0xDF,0xE0,
// 'j'
0x6A,0x01,0x03,0x0E,0xFF,0x03,
0x24,0x12,0x49,0x24,0x93,0x80,
// 'k'
0x6B,0x01,0x07,0x0B,0x01,0x08,
0x81,0x02,0x04,0x28,0x92,0x38,0x50,0x91,0x12,0x10,
// 'l'
0x6C,0x01,0x01,0x0B,0x01,0x03,
0xFF,0xE0,
// 'm'
0x6D,0x04,0x0D,0x08,0x01,0x0F,
0xBC,0xF6,0x38,0xE0,0x83,0x04,0x18,0x20,0xC1,0x06,0x08,0x30,0x41,
// 'n'
0x6E,0x04,0x07,0x08,0x01,0x09,
0xBD,0x8E,0x0C,0x18,0x30,0x60,0xC1,
// 'o'
0x6F,0x04,0x07,0x08,0x01,0x09,
0x38,0x8A,0x0C,0x18,0x30,0x51,0x1C,
// 'p'
0x70,0x04,0x07,0x0B,0x01,0x09,
0xB9,0x8A,0x0C,0x18,0x30,0x71,0x5C,0x81,0x02,0x00,
// 'q'
0x71,0x04,0x07,0x0B,0x01,0x09,
0x3A,0x8E,0x0C,0x18,0x30,0x51,0x9D,0x02,0x04,0x08,
// 'r'
0x72,0x04,0x05,0x08,0x01,0x06,
0xBE,0x21,0x08,0x42,0x10,
// 's'
0x73,0x04,0x06,0x08,0x01,0x08,
0x7A,0x18,0x38,0x18,0x18,0x5E,
// 't'
0x74,0x02,0x05,0x0A,0x00,0x06,
0x42,0x3E,0x84,0x21,0x08,0x41,0xC0,
// 'u'
0x75,0x04,0x07,0x08,0x00,0x09,
0x83,0x06,0x0C,0x18,0x30,0x71,0xBD,
// 'v'
0x76,0x04,0x0A,0x08,0xFF,0x08,
0x40,0x90,0x22,0x10,0x84,0x12,0x04,0x80,0xC0,0x30,
// 'w'
0x77,0x04,0x0D,0x08,0x00,0x0D,
0x42,0x12,0x10,0x91,0x44,0x4A,0x42,0x8A,0x14,0x50,0x41,0x02,0x08,
// 'x'
0x78,0x04,0x08,0x08,0x01,0x0A,
0xC3,0x42,0x24,0x18,0x18,0x24,0x42,0xC3,
// 'y'
0x79,0x04,0x09,0x0B,0x00,0x08,
0x81,0x20,0x90,0x84,0x42,0x40,0xA0,0x60,0x10,0x08,0x08,0x18,0x00,
// 'z'
0x7A,0x04,0x06,0x08,0x01,0x08,
0xFC,0x10,0x84,0x21,0x08,0x3F,
// '{'
0x7B,0x01,0x05,0x0E,0x02,0x0A,
0x19,0x08,0x42,0x13,0x04,0x21,0x08,0x42,0x0C,
// '|'
0x7C,0x01,0x01,0x0F,0x02,0x05,
0xFF,0xFE,
// '}'
0x7D,0x01,0x05,0x0E,0x02,0x0A,
0xC1,0x08,0x42,0x10,0x64,0x21,0x08,0x42,0x60,
// '~'
0x7E,0x05,0x09,0x04,0x02,0x0D,
0x00,0x3C,0x63,0xC0,0x00,


    // Terminator
        0xFF
    },
};